﻿<Configuration:SynchronizationConfigurationDictionary x:Class="DragonSpark.Testing.Resources.ComplexPropertyMappings"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:Configuration="clr-namespace:DragonSpark.Objects.Synchronization.Configuration;assembly=DragonSpark" xmlns:CoreConfiguration="clr-namespace:DragonSpark.Objects.Configuration;assembly=DragonSpark"
	xmlns:System="clr-namespace:System;assembly=mscorlib" xmlns:Synchronization="clr-namespace:DragonSpark.Testing.TestObjects.Synchronization">
	<Configuration:SynchronizationKey x:Key="KeyEntityViewEntity" First="{x:Type Synchronization:EntityView}" Second="{x:Type Synchronization:Entity}" />
	<Configuration:SynchronizationKey x:Key="KeyObjectObject" First="{x:Type System:Object}" Second="{x:Type System:Object}" />
	<Configuration:SynchronizationContainer x:Key="DefaultContainer">
		<Configuration:SynchronizationPolicy Key="{StaticResource KeyObjectObject}">
			<Configuration:SimilarProperties />
		</Configuration:SynchronizationPolicy>
		<Configuration:SynchronizationPolicy Key="{StaticResource KeyEntityViewEntity}">
			<Configuration:SynchronizationContexts>
				<Configuration:ObjectResolvingSynchronizationContext FirstExpression="ComplexPropertyView" SecondExpression="ComplexProperty">
					<CoreConfiguration:ObjectResolver ItemType="{x:Type Synchronization:EntityComplexProperty}">
						<CoreConfiguration:ObjectResolver.ObjectFinder>
							<CoreConfiguration:ObjectFinder ObjectFinderType="{x:Type Synchronization:EntityComplexPropertyFinder}" />
						</CoreConfiguration:ObjectResolver.ObjectFinder>
						<CoreConfiguration:ObjectResolver.InstanceSource>
							<CoreConfiguration:InstanceSource SourceType="{x:Type Synchronization:EntityViewComplexProperty}" ResultType="{x:Type Synchronization:EntityComplexProperty}" />
						</CoreConfiguration:ObjectResolver.InstanceSource>
					</CoreConfiguration:ObjectResolver>
				</Configuration:ObjectResolvingSynchronizationContext>
			</Configuration:SynchronizationContexts>
		</Configuration:SynchronizationPolicy>
	</Configuration:SynchronizationContainer>
</Configuration:SynchronizationConfigurationDictionary>
